The Internet is essential to businesses as well as to customers. Many businesses or “site owners” out-source their e-commerce and e-commerce Web sites to service providers rather than operate and manage the sites on their own servers. The service provider uses a set of servers in a group called a Server Farm (SF). The SF is used by many different businesses, the service providers' customers, to run their applications.
Traditionally, a fixed set of servers in a server farm is assigned and used by every customer. Servers are added or removed from a customer's set in response to an explicit request and the process, requiring human intervention, can take several days. The prior art solution is labor intensive and does not address the order of magnitude difference between peak and average workload.
To facilitate server allocation, server farms have been implemented wherein servers are allocated to customers dynamically and automatically according to monitored workload. The systems are termed Dynamic Reactive Server Farm (DRSF). In DRSF systems, it is assumed that every customer has an agreement, termed a Service Level Agreement (SLA), with the owner of the server farm. The SLA specifies a minimum number of servers SMIN and a maximum number of servers SMAX to be allocated to the customer. Servers are dynamically and automatically allocated between these bounds on a best-effort basis, according to the load. Customers pay for the service based on actual server usage.
Current DRSF systems operate in a reactive and greedy fashion, such that servers are allocated according to the current monitored load, one server at a time, until the load decreases to the required level. In the case of a contention over resources, resources will be assigned to needy customers on a “first-come-first-serve” basis.
Being reactive and greedy, current DRSF systems need improvement in the areas of performance, revenue generation, flexibility, and system stability. With regard to performance, customers might experience long periods of lesser performance due to the reactive nature of the system, since resource allocation decisions are made according to the current load, and not the expected load. Moreover, with servers being allocated in an incremental fashion, whereby the system waits for a stabilization period until it decides to allocate another server, resource allocation lags after workload changes and affects current performance.
The performance problem also leads to lower revenue for the server farm's owner. When servers that are needed for a customer are not allocated on time, potential revenue is foregone. Moreover, penalties are often assessed for not meeting availability guarantees which have been promised to the customer. Yet another reason for lower revenue is that servers are allocated on a first-come-first-serve basis without taking into account customers Service Level Agreements (SLAs).
System stability is affected when servers are allocated as a reaction to a short temporary fluctuation in the load and are de-allocated shortly thereafter. Such a reaction imposes unnecessary overhead and load on the system.
Finally, current DRSF solutions support only a simplified and rigid SLA structure whose main parameters are SMIN and SMAX. As a result, more flexible offers that might be suitable for a wider variety of customers, including such features as more levels of guarantee (beyond “best effort”), different rates for servers, and penalties for violations, cannot be supported.
Accordingly, it is an objective of the present invention to provide a server allocation and billing system and method which is flexible, providing system stability and good performance, and which increases server farm revenues.